﻿package org.zzul.util;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

public class JedisUtils {
	private JedisPool jedisPool= new JedisPool("127.0.0.1", 6379);
	
	public String get(String key) {
		Jedis jedis = jedisPool.getResource();
		String string = jedis.get(key);
		jedis.close();
		return string;
	}

	 
	public String set(String key, String value) {
		Jedis jedis = jedisPool.getResource();
		String string = jedis.set(key, value);
		jedis.close();
		return string;
	}

	 //取hash数据 hget（名，key）
	public String hget(String hkey, String key) {
		Jedis jedis = jedisPool.getResource();
		String string = jedis.hget(hkey, key);
		jedis.close();
		return string;
	}

	 //存hash数据  hset(名，key，value)
	public long hset(String hkey, String key, String value) {
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.hset(hkey, key, value);
		jedis.close();
		return result;
	}

	 //递增
	public long incr(String key) {
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.incr(key);
		jedis.close();
		return result;
	}

	 //Redis Expire 命令用于设置 key 的过期时间，key 过期后将不再可用。单位以秒计。
	public long expire(String key, int second) {
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.expire(key, second);
		jedis.close();
		return result;
	}

	 //Redis TTL 命令以秒为单位返回 key 的剩余过期时间。
	//当 key 不存在时，返回 -2 。 当 key 存在但没有设置剩余生存时间时，返回 -1 。 否则，以秒为单位，返回 key 的剩余生存时间。
	public long ttl(String key) {
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.ttl(key);
		jedis.close();
		return result;
	}

	 //根据key删除  (可以传多个)
	//返回值  被删除 key 的数量 
	public long del(String... keys) {
		Jedis jedis = jedisPool.getResource();
		Long code = jedis.del(keys);
		jedis.close();
		return code;
	}

	 //删除hash的值 根据key（可以传多个key）
	public long hdel(String hkey, String...fields) {
		Jedis jedis = jedisPool.getResource();
		Long code = jedis.hdel(hkey, fields);
		jedis.close();
		return code;
	}
}
